package com.qiwo.sys.domain;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import org.apache.poi.ss.usermodel.CellStyle;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <pre>
 * </pre>
 * <small> 2018年3月23日 | Aron</small>
 */
@TableName("sys_user")
public class UserDO  extends BaseRowModel implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableField(exist = false)
    private Map<Integer, CellStyle> cellStyleMap;
    //
    @ExcelProperty(value = "id" ,index = 0)
    private Long id;
    // 用户名
    @ExcelProperty(value = "用户名称" ,index = 1)
    private String username;
    // 用户真实姓名
    @ExcelProperty(value = "用户真实姓名" ,index = 2)
    private String name;
    // 密码
    @ExcelProperty(value = "密码" ,index = 3)
    private String password;
    // 部门
    private Long deptId;

    @TableField(exist = false)
    @ExcelProperty(value = "部门名称" ,index = 4)
    private String deptName;

    // 邮箱
    @ExcelProperty(value = "邮箱" ,index = 5)
    private String email;
    // 手机号
    @ExcelProperty(value = "手机号" ,index = 6)
    private String mobile;
    // 状态 0:禁用，1:正常

    @ExcelProperty(value = "状态" ,index =7)
    private Integer status;
    // 创建用户id
    @ExcelProperty(value = "创建用户id" ,index =8)
    private Long userIdCreate;
    // 创建时间
    @ExcelProperty(value = "创建时间" ,index =9,format = "yyyy/MM/dd")
    private Date gmtCreate;
    // 修改时间
    @ExcelProperty(value = "修改人" ,index =10)
    private Date gmtModified;
    //角色
    @TableField(exist = false)

    @ExcelProperty(value = "角色" ,index =11)
    private List<Long> roleIds;
    //性别
    @ExcelProperty(value = "性别" ,index =12)
    private Long sex;
    //出身日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "出身日期" ,index =13,format = "yyyy/MM/dd")
    private Date birth;
    //图片ID
    @ExcelProperty(value = "图片id" ,index =14)
    private Long picId;
    //现居住地
    @ExcelProperty(value = "现居住地" ,index =15)
    private String liveAddress;

    //爱好
    @ExcelProperty(value = "爱好" ,index =16)
    private String hobby;

    //省份
    @ExcelProperty(value = "省份" ,index =17)
    private String province;
    //所在城市
    @ExcelProperty(value = "城市" ,index =18)
    private String city;
    //所在地区
    @ExcelProperty(value = "所在地区" ,index =18)
    private String district;

    

    /**
     * 设置：用户名
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * 获取：用户名
     */
    public String getUsername() {
        return username;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    /**
     * 设置：密码
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取：密码
     */
    public String getPassword() {
        return password;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    /**
     * 设置：邮箱
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * 获取：邮箱
     */
    public String getEmail() {
        return email;
    }

    /**
     * 设置：手机号
     */
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    /**
     * 获取：手机号
     */
    public String getMobile() {
        return mobile;
    }

    /**
     * 设置：状态 0:禁用，1:正常
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取：状态 0:禁用，1:正常
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置：创建用户id
     */
    public void setUserIdCreate(Long userIdCreate) {
        this.userIdCreate = userIdCreate;
    }

    /**
     * 获取：创建用户id
     */
    public Long getUserIdCreate() {
        return userIdCreate;
    }

    /**
     * 设置：创建时间
     */
    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    /**
     * 获取：创建时间
     */
    public Date getGmtCreate() {
        return gmtCreate;
    }

    /**
     * 设置：修改时间
     */
    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    /**
     * 获取：修改时间
     */
    public Date getGmtModified() {
        return gmtModified;
    }

    public List<Long> getroleIds() {
        return roleIds;
    }

    public void setroleIds(List<Long> roleIds) {
        this.roleIds = roleIds;
    }

    public Long getSex() {
        return sex;
    }

    public void setSex(Long sex) {
        this.sex = sex;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public Long getPicId() {
        return picId;
    }

    public void setPicId(Long picId) {
        this.picId = picId;
    }

    public String getLiveAddress() {
        return liveAddress;
    }

    public void setLiveAddress(String liveAddress) {
        this.liveAddress = liveAddress;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "UserDO [id=" + id + ", username=" + username + ", name=" + name + ", password=" + password + ", deptId="
                + deptId + ", deptName=" + deptName + ", email=" + email + ", mobile=" + mobile + ", status=" + status
                + ", userIdCreate=" + userIdCreate + ", gmtCreate=" + gmtCreate + ", gmtModified=" + gmtModified
                + ", roleIds=" + roleIds + ", sex=" + sex + ", birth=" + birth + ", picId=" + picId + ", liveAddress="
                + liveAddress + ", hobby=" + hobby + ", province=" + province + ", city=" + city + ", district="
                + district + "]";
    }

    
}
